class Service(object):
    """service basic interface"""
    AUTH_WITH_OAUTH = 1 #login with oauth treelegged login
    AUTH_WITH_PWD = 2 #login with password/user
    AUTH_WITH_NOAUTH = 3 #service where no login is needed
    AUTH_WITH_UNDEFINED = 4 #unknow but works (only for service that implements login UI)

    def __init__(self, epyt):
        self._type = epyt
        self.profile = None

    def getType(self):
        return self._type

    def getProfileService(self):
        """Return ProfileService subclass implementation"""
        raise NotImplementedError()
        return NotImplemented

    def getPostService(self):
        """Return PostService subclass implementation"""
        raise NotImplementedError()
        return NotImplemented

    def getContactsService(self):
        """Return ContactsService subclass implementation"""
        return NotImplemented

    @staticmethod
    def getServiceId():
        """Return class name"""
        raise NotImplementedError()

    @staticmethod
    def getHowImport():
        """Return import sintax"""
        raise NotImplementedError()

    def __str__(self):
        return self.getServiceId()